/**
 * describe：程序由tpframe官方提供，仅限源码学习研究，程序将持续更新，最新程序动态请关注:https://www.tpframe.com
 * mobile/微信：15523362830
 * 
 * 缓存数据优化
 * import cache from '@/common/js/cache.js'
 * 使用方法 【
 *     一、设置缓存
 *         string    cache.set('key', 'Hello world');
 *         json      cache.set('key', { "id": "3" }, 2);
 *         array     cache.set('key', [1, 2, 3]);
 *         boolean   cache.set('key', true);
 *     二、读取缓存
 *         默认值    cache.get('key')
 *         string    cache.get('key', 'hello')
 *         json      cache.get('key', { "id": "1" })
 *     三、移除/清理  
 *         移除: cache.remove('k');
 *         清理：cache.clear(); 
 * 】
 * @type {String}
 */

import config from "./config.js"
module.exports={
	/**
	 * 设置缓存 
	 * @param  {[type]} k [键名]
	 * @param  {[type]} v [键值]
	 * @param  {[type]} t [时间、单位秒]
	 */
	set(k, v, t){
	    uni.setStorageSync(k, v) 
	    var seconds = parseInt(t);
	    if (seconds > 0) {
	        var timestamp = Date.parse(new Date());
	        timestamp = timestamp / 1000 + seconds;
	        uni.setStorageSync(config.PRE_CACHE + k, timestamp + "")
	    } else {
	        uni.removeStorageSync(config.PRE_CACHE + k)
	    }
	},
	/**
	 * 获取缓存 
	 * @param  {[type]} k   [键名]
	 * @param  {[type]} def [获取为空时默认]
	 */
	get(k, def) {
	    var deadtime = parseInt(uni.getStorageSync(config.PRE_CACHE + k)) 
	    if (deadtime) {
	        if (parseInt(deadtime) < Date.parse(new Date()) / 1000) {
	            if (def) {
	                return def;
	            } else {
	                return false;
	            }
	        }
	    }
	    var res = uni.getStorageSync(k);
	    if (res) {
	        return res;
	    } else {
	        if (def == undefined  || def == "") {
	            def = false; 
	        }
	        return def;
	    }
	},
	
	remove(k) {
	    uni.removeStorageSync(k);
	    uni.removeStorageSync(config.PRE_CACHE + k);
	},
	
	/**
	 * 清理所有缓存
	 * @return {[type]} [description]
	 */
	clear() {
	    uni.clearStorageSync();
	}
}